home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1995 #5 & #6 / Amiga Plus CD - 1995 - No. 5 and 6.iso / tex / mf / inputs / dc / dxcspl.mf < prev    next >
Text File  |  1994-04-12  |  10KB  |  238 lines

  1. % This is DXCSPL.MF in text format, as of March 24, 1992
  2. %
  3. % DC fonts Version 1.1 (prerelease of EC fonts)
  4. %
  5. %          [ heavily borrowed from the Computer Modern Roman family of
  6. %            fonts by D. E. Knuth ]
  7. %
  8. % Content:
  9. %
  10. %   Metafont program for the characters in positions of ligatures
  11. %   for the "caps and small caps" fonts
  12. %
  13. %   I,J,FI,FL,FFI,FFL and D with bar
  14. %
  15.  
  16. dcchar "The letter I";
  17. beginchar(oct"031",max(6u#,4u#+cap_stem#),cap_height#,0);
  18. italcorr cap_height#*slant-.25u#;
  19. adjust_fit(cap_serif_fit#,cap_serif_fit#);
  20. pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
  21. lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
  22. filldraw stroke z1e--z2e; % stem
  23. if serifs: dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut);  % upper serif
  24.  dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut);  fi % lower serif
  25. math_fit(0,.5ic#); penlabels(1,2); endchar;
  26.  
  27. dcchar "The letter J";
  28. beginchar(oct"032",9u#,cap_height#,0);
  29. italcorr cap_height#*slant-cap_serif_fit#
  30.  +.75cap_jut#-2.5u#+min(.5cap_stem#,u#);
  31. adjust_fit(0,cap_serif_fit#);
  32. pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
  33. top y1=h; rt x1r=hround(w-2u); x2=x1; y2=.21h;
  34. if serifs: pos3(vair,-90); pos4(cap_hair,-180);
  35.  pos5(flare+(cap_stem-stem),-180);
  36.  bot y3r=-o; x3=.5[x4,x2]; y5=1/6h; rt x5l=hround 2.75u; z5r=z4r;
  37.  filldraw stroke z1e--z2e&super_arc.e(2,3);  % stem and arc
  38.  dish_serif(1,2,a,1/3,1.3cap_jut,b,1/3,.75cap_jut);  % serif
  39.  bulb(3,4,5);  % bulb
  40. else: filldraw stroke z1e--z2e;  % stem
  41.  pickup fine.nib; pos3(cap_stem',0); z3=z2;
  42.  pos4(flare,angle(6.5u,-h)); pos5(1.1flare,-100);
  43.  bot y4r=-o; x4r=.5[x5r,x3r]; lft x5r=hround.75u; bot y5r=vround.06h-o;
  44.  filldraw stroke z3e{down}....term.e(4,5,left,1,4); fi % arc and terminal
  45. math_fit(0,.5ic#-.5u#); penlabels(1,2,3,4,5); endchar;
  46.  
  47. dcchar "The letter FF";
  48. beginchar(oct"033",2(11.5u#-width_adj#),cap_height#,0);
  49. italcorr cap_height#*slant-.25u#;
  50. normal_adjust_fit(cap_serif_fit#,0);
  51. h:=vround(h-stem_corr);
  52. w':=11.5u-width_adj;
  53. pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
  54. lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
  55. filldraw stroke z1e--z2e; % stem
  56. pickup crisp.nib; pos3(slab,90); pos4(hair,0);
  57. top y3r=h; x3=x1; rt x4r=hround(w'-.75u); y4=good.y(y3l-beak)-eps;
  58. arm(3,4,e,beak_darkness,beak_jut);  % upper arm and beak
  59. pos5(cap_bar,-90); pos6(hair,0);
  60. top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
  61. pos0(cap_bar,90); pos7(hair,0);
  62. z0=z5; x6=x7; y6-y5l=y0l-y7;
  63. if serifs: rt x6r=hround(w'-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
  64.  rt x9r=hround(w'-.5u);
  65. else: rt x6r=hround(w'-1.5u); y6=y5l+eps; rt x9r=hround(w'-.75u); fi
  66. arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0);  % middle arm and serif
  67. if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut);  % upper serif
  68.  dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi  % lower serif
  69. % the second F
  70. currentpicture:=currentpicture + currentpicture shifted (w',0);
  71. math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9,11,12); endchar;
  72.  
  73. dcchar "The letter FI";
  74. beginchar(oct"034",11.5u#-width_adj#+max(6u#,4u#+cap_stem#),cap_height#,0);
  75. italcorr cap_height#*slant-.25u#;
  76. normal_adjust_fit(cap_serif_fit#,0);
  77. h:=vround(h-stem_corr);
  78. w':=11.5u-width_adj;
  79. pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
  80. lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
  81. filldraw stroke z1e--z2e; % stem
  82. pickup crisp.nib; pos3(slab,90); pos4(hair,0);
  83. top y3r=h; x3=x1; rt x4r=hround(w'-.75u); y4=good.y(y3l-beak)-eps;
  84. arm(3,4,e,beak_darkness,beak_jut);  % upper arm and beak
  85. pos5(cap_bar,-90); pos6(hair,0);
  86. top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
  87. pos0(cap_bar,90); pos7(hair,0);
  88. z0=z5; x6=x7; y6-y5l=y0l-y7;
  89. if serifs: rt x6r=hround(w'-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
  90.  rt x9r=hround(w'-.5u);
  91. else: rt x6r=hround(w'-1.5u); y6=y5l+eps; rt x9r=hround(w'-.75u); fi
  92. arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0);  % middle arm and serif
  93. if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut);  % upper serif
  94.  dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi  % lower serif
  95. % the I
  96. xshift:=w';
  97. w':=w-xshift;
  98. pickup tiny.nib; pos11(cap_stem,0); pos12(cap_stem,0);
  99. lft x11l=lft x12l=hround(xshift+.5w'-.5cap_stem); top y11=h; bot y12=0;
  100. filldraw stroke z11e--z12e; % stem
  101. if serifs: dish_serif(11,12,aa,1/3,1.05cap_jut,bb,1/3,1.05cap_jut);  % upper serif
  102.  dish_serif(12,11,gg,1/3,1.05cap_jut,dd,1/3,1.05cap_jut);  fi % lower serif
  103. math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9,11,12); endchar;
  104.  
  105. dcchar "The letter FL";
  106. beginchar(oct"035",(11.5u#-width_adj#)+11u#-width_adj#,cap_height#,0);
  107. italcorr cap_height#*slant-.25u#;
  108. normal_adjust_fit(cap_serif_fit#,0);
  109. h:=vround(h-stem_corr);
  110. w':=11.5u-width_adj;
  111. pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
  112. lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
  113. filldraw stroke z1e--z2e; % stem
  114. pickup crisp.nib; pos3(slab,90); pos4(hair,0);
  115. top y3r=h; x3=x1; rt x4r=hround(w'-.75u); y4=good.y(y3l-beak)-eps;
  116. arm(3,4,e,beak_darkness,beak_jut);  % upper arm and beak
  117. pos5(cap_bar,-90); pos6(hair,0);
  118. top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
  119. pos0(cap_bar,90); pos7(hair,0);
  120. z0=z5; x6=x7; y6-y5l=y0l-y7;
  121. if serifs: rt x6r=hround(w'-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
  122.  rt x9r=hround(w'-.5u);
  123. else: rt x6r=hround(w'-1.5u); y6=y5l+eps; rt x9r=hround(w'-.75u); fi
  124. arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0);  % middle arm and serif
  125. if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut);  % upper serif
  126.  dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi  % lower serif
  127. % the L
  128. xshift:=w';
  129. pickup tiny.nib; pos11(cap_stem,0); pos12(cap_stem,0);
  130. lft x11l=lft x12l=hround xshift+max(2u,3u-.5cap_stem); top y11=h; bot y12=0;
  131. filldraw stroke z11e--z12e; % stem
  132. pickup crisp.nib; pos13(slab,-90); pos14(hair,0);
  133. bot y13r=0; x13=x12; y14=y13l+7/6beak+eps; rt x14r=hround(w-.75u);
  134. arm(13,14,eee,1.2beak_darkness,beak_jut);  % lower arm and beak
  135. if serifs: dish_serif(11,12,aaa,1/3,cap_jut,bbb,1/3,1.25cap_jut);  % upper serif
  136.  nodish_serif(12,11,ccc,1/3,cap_jut,ddd,1/3,.5cap_jut); fi  % lower serif
  137. math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9,11,12); endchar;
  138.  
  139.  
  140.  
  141. dcchar "The letter FFI";
  142. beginchar(oct"036",2(11.5u#-width_adj#)+max(6u#,4u#+cap_stem#),cap_height#,0);
  143. italcorr cap_height#*slant-.25u#;
  144. normal_adjust_fit(cap_serif_fit#,0);
  145. h:=vround(h-stem_corr);
  146. w':=11.5u-width_adj;
  147. pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
  148. lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
  149. filldraw stroke z1e--z2e; % stem
  150. pickup crisp.nib; pos3(slab,90); pos4(hair,0);
  151. top y3r=h; x3=x1; rt x4r=hround(w'-.75u); y4=good.y(y3l-beak)-eps;
  152. arm(3,4,e,beak_darkness,beak_jut);  % upper arm and beak
  153. pos5(cap_bar,-90); pos6(hair,0);
  154. top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
  155. pos0(cap_bar,90); pos7(hair,0);
  156. z0=z5; x6=x7; y6-y5l=y0l-y7;
  157. if serifs: rt x6r=hround(w'-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
  158.  rt x9r=hround(w'-.5u);
  159. else: rt x6r=hround(w'-1.5u); y6=y5l+eps; rt x9r=hround(w'-.75u); fi
  160. arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0);  % middle arm and serif
  161. if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut);  % upper serif
  162.  dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi  % lower serif
  163. % the second F
  164. currentpicture:=currentpicture + currentpicture shifted (w',0);
  165. % the I
  166. xshift:=2w';
  167. w':=w-xshift;
  168. pickup tiny.nib; pos11(cap_stem,0); pos12(cap_stem,0);
  169. lft x11l=lft x12l=hround(xshift+.5w'-.5cap_stem); top y11=h; bot y12=0;
  170. filldraw stroke z11e--z12e; % stem
  171. if serifs: dish_serif(11,12,aa,1/3,1.05cap_jut,bb,1/3,1.05cap_jut);  % upper serif
  172.  dish_serif(12,11,gg,1/3,1.05cap_jut,dd,1/3,1.05cap_jut);  fi % lower serif
  173. math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9,11,12); endchar;
  174.  
  175. dcchar "The letter FFL";
  176. beginchar(oct"037",2(11.5u#-width_adj#)+11u#-width_adj#,cap_height#,0);
  177. italcorr cap_height#*slant-.25u#;
  178. normal_adjust_fit(cap_serif_fit#,0);
  179. h:=vround(h-stem_corr);
  180. w':=11.5u-width_adj;
  181. pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
  182. lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
  183. filldraw stroke z1e--z2e; % stem
  184. pickup crisp.nib; pos3(slab,90); pos4(hair,0);
  185. top y3r=h; x3=x1; rt x4r=hround(w'-.75u); y4=good.y(y3l-beak)-eps;
  186. arm(3,4,e,beak_darkness,beak_jut);  % upper arm and beak
  187. pos5(cap_bar,-90); pos6(hair,0);
  188. top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
  189. pos0(cap_bar,90); pos7(hair,0);
  190. z0=z5; x6=x7; y6-y5l=y0l-y7;
  191. if serifs: rt x6r=hround(w'-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
  192.  rt x9r=hround(w'-.5u);
  193. else: rt x6r=hround(w'-1.5u); y6=y5l+eps; rt x9r=hround(w'-.75u); fi
  194. arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0);  % middle arm and serif
  195. if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut);  % upper serif
  196.  dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi  % lower serif
  197. % the I
  198. currentpicture:=currentpicture + currentpicture shifted (w',0);
  199. % the L
  200. xshift:=2w';
  201. pickup tiny.nib; pos11(cap_stem,0); pos12(cap_stem,0);
  202. lft x11l=lft x12l=hround xshift+max(2u,3u-.5cap_stem); top y11=h; bot y12=0;
  203. filldraw stroke z11e--z12e; % stem
  204. pickup crisp.nib; pos13(slab,-90); pos14(hair,0);
  205. bot y13r=0; x13=x12; y14=y13l+7/6beak+eps; rt x14r=hround(w-.75u);
  206. arm(13,14,eee,1.2beak_darkness,beak_jut);  % lower arm and beak
  207. if serifs: dish_serif(11,12,aaa,1/3,cap_jut,bbb,1/3,1.25cap_jut);  % upper serif
  208.  nodish_serif(12,11,ccc,1/3,cap_jut,ddd,1/3,.5cap_jut); fi  % lower serif
  209. math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9,11,12); endchar;
  210.  
  211.  
  212. dcchar "The small caps letter (Eth) bar D";
  213. beginchar(oct"236",13.5u#,cap_height#,0);
  214. italcorr .7cap_height#*slant-.5u#;
  215. adjust_fit(cap_serif_fit#,0);
  216. pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
  217. lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
  218. filldraw stroke z1e--z2e; % stem
  219. penpos3(cap_band,90); penpos4(cap_band,90);
  220. penpos5(cap_curve-stem_corr,0);
  221. penpos6(cap_band,-90); penpos7(cap_band,-90);
  222. z3r=top z1; y4=y3; y5=.51[y4,y6]; y6=y7;
  223. z7r=bot z2; x4=x6=.5w+.25u; x5r=hround(w-u);
  224. x4l:=x6l:=x4-.25cap_curve;
  225. fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e;  % lobe
  226. if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut);  % upper serif
  227.  nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi  % lower serif
  228. % the bar
  229. pickup tiny.nib;
  230. y8=y9=y5;
  231. pos8(bar,90); pos9(bar,90);
  232. x9=x4;
  233. if serifs:  x8=x2l-cap_jut; else: x8=.5u; fi;
  234. filldraw stroke z8e--z9e;
  235. math_fit(0,ic#-.5u#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
  236.  
  237. endinput;
  238.